Imports System.Data
Imports CrystalDecisions.CrystalReports.Engine

Partial Class ArchivosReporte
  Inherits System.Web.UI.Page

  Protected Sub form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles form1.Load

    Try
      Dim reporte As New ReportDocument()
      ' Detalle del documento
      reporte.Load(Server.MapPath("~\Documentos\Archivos\Reporte\rptArchivos.rpt"))

      'Datos encabezado
      Dim docArchivos As New DataAccesArchivos()
      Dim ArchivosDetalle As New DataSet("DetalleDocumento")
      ArchivosDetalle = docArchivos.Archivos_DetalleXML(CInt(Request.QueryString("nidDocumento")))
	  ArchivosDetalle.Tables(0).TableName = "Encabezado"
	  ArchivosDetalle.Tables(1).TableName = "DetalleDocumento"
	  ArchivosDetalle.Tables(2).TableName = "Anexos"
	  ArchivosDetalle.Tables(3).TableName = "Incidencias"
	  
	  Dim tEncabezado As DataTable=ArchivosDetalle.Tables(0)
	  Dim tDetalle As DataTable=ArchivosDetalle.Tables(1)
	  Dim tAnexos As DataTable=ArchivosDetalle.Tables(2)
	  Dim tIncidencias As DataTable=ArchivosDetalle.Tables(3)
	  
      reporte.SetParameterValue("pCodigo", tEncabezado.Rows(0)("CODIGO"))
      reporte.SetParameterValue("pFechaSolicitud", CDate(tEncabezado.Rows(0)("FECHACREACION")).ToString("dd/MM/yyyy HH:mm:ss"))
      reporte.SetParameterValue("pEmisor", tEncabezado.Rows(0)("NOMBRE"))

      'Detalle del documento
	  reporte.SetParameterValue("pidArchivo", tDetalle.Rows(0)("idArchivo").ToString)
      reporte.SetParameterValue("pidProyecto", tDetalle.Rows(0)("idProyecto").ToString)
      reporte.SetParameterValue("pnombre", tDetalle.Rows(0)("nombre").ToString)
      reporte.SetParameterValue("pauto", tDetalle.Rows(0)("auto").ToString)
      reporte.SetParameterValue("psoftware", tDetalle.Rows(0)("software").ToString)
      reporte.SetParameterValue("pfecha", tDetalle.Rows(0)("fecha").ToString)
      reporte.SetParameterValue("panalizado", tDetalle.Rows(0)("analizado").ToString)
      reporte.SetParameterValue("psistema", tDetalle.Rows(0)("sistema").ToString)
      reporte.SetParameterValue("preference", tDetalle.Rows(0)("reference").ToString)
      reporte.SetParameterValue("pconfiguration", tDetalle.Rows(0)("configuration").ToString)
      reporte.SetParameterValue("pcode", tDetalle.Rows(0)("code").ToString)
      reporte.SetParameterValue("psoftwareModule", tDetalle.Rows(0)("softwareModule").ToString)
      reporte.SetParameterValue("pvalido", tDetalle.Rows(0)("valido").ToString)
      reporte.SetParameterValue("pfecha_Analisis", tDetalle.Rows(0)("fecha_Analisis").ToString)
      reporte.SetParameterValue("pkilometraje", tDetalle.Rows(0)("kilometraje").ToString)
      reporte.SetParameterValue("pdiumpr_Ctgendenom", tDetalle.Rows(0)("diumpr_Ctgendenom").ToString)
      reporte.SetParameterValue("pdiumpr_Ctign", tDetalle.Rows(0)("diumpr_Ctign").ToString)
      reporte.SetParameterValue("perrores_Entrada", tDetalle.Rows(0)("errores_Entrada").ToString)
      reporte.SetParameterValue("perrores_Codigo", tDetalle.Rows(0)("errores_Codigo").ToString)
      reporte.SetParameterValue("pidFlotte", tDetalle.Rows(0)("idFlotte").ToString)
      reporte.SetParameterValue("pidSystem", tDetalle.Rows(0)("idSystem").ToString)
      reporte.SetParameterValue("pprotocol", tDetalle.Rows(0)("protocol").ToString)
      reporte.SetParameterValue("pecuHardware", tDetalle.Rows(0)("ecuHardware").ToString)
      reporte.SetParameterValue("pecuType", tDetalle.Rows(0)("ecuType").ToString)
      reporte.SetParameterValue("pengineProject", tDetalle.Rows(0)("engineProject").ToString)
      reporte.SetParameterValue("pdisplacement", tDetalle.Rows(0)("displacement").ToString)
      reporte.SetParameterValue("pemissionconcept", tDetalle.Rows(0)("emissionconcept").ToString)
      reporte.SetParameterValue("pplatform", tDetalle.Rows(0)("platform").ToString)
      reporte.SetParameterValue("ppower", tDetalle.Rows(0)("power").ToString)
      reporte.SetParameterValue("pgearbox", tDetalle.Rows(0)("gearbox").ToString)
      reporte.SetParameterValue("pmanufacturer", tDetalle.Rows(0)("manufacturer").ToString)
      reporte.SetParameterValue("pversionnumber", tDetalle.Rows(0)("versionnumber").ToString)
      reporte.SetParameterValue("ppartnumber", tDetalle.Rows(0)("partnumber").ToString)
      reporte.SetParameterValue("pchasis", tDetalle.Rows(0)("chasis").ToString)
      reporte.SetParameterValue("phardwarePartNum", tDetalle.Rows(0)("hardwarePartNum").ToString)
      reporte.SetParameterValue("psystemName", tDetalle.Rows(0)("systemName").ToString)
      reporte.SetParameterValue("podxFileIdentifier", tDetalle.Rows(0)("odxFileIdentifier").ToString)
      reporte.SetParameterValue("podxFileVersion", tDetalle.Rows(0)("odxFileVersion").ToString)
      reporte.SetParameterValue("phardwareVersionNumber", tDetalle.Rows(0)("hardwareVersionNumber").ToString)
      reporte.SetParameterValue("pengineSystemNumber", tDetalle.Rows(0)("engineSystemNumber").ToString)
      reporte.SetParameterValue("pcodingvalue", tDetalle.Rows(0)("codingvalue").ToString)
      
      

      'Datos Anexos
      Dim anexos As String = ""
      Dim tipos As String = ""
      For i As Integer = 0 To tAnexos.Rows.Count - 1
        anexos += tAnexos.Rows(i)("NOMBRE") + Chr(13)
        tipos += tAnexos.Rows(i)("TIPO") + Chr(13)
      Next
      reporte.SetParameterValue("pAnexos", anexos)
      reporte.SetParameterValue("pAnexoTipo", tipos)

      'Datos Incidencias
      Dim fecha As String = ""
      Dim descripcion As String = ""
      Dim emisor As String = ""
      For i As Integer = 0 To tIncidencias.Rows.Count - 1
        fecha += CDate(tIncidencias.Rows(i)("FECHAEMISION")).ToString("dd/MM/yyyy hh:mm:ss") + Chr(13)
        descripcion += tIncidencias.Rows(i)("DESCRIPCION") + Chr(13)
        emisor += tIncidencias.Rows(i)("NOMBRE") + Chr(13)
      Next
      reporte.SetParameterValue("pFechaIncidencia", fecha)
      reporte.SetParameterValue("pDescripcionIncidencia", descripcion)
      reporte.SetParameterValue("pEmisorIncidencia", emisor)


      'Cargar informacion de firma electronica
      Dim consultaFirmas As New DataAccesGenerales()
      Dim firmas As New DataTable("CasetaFirmas")
      firmas = consultaFirmas.consultarFirmas(CInt(Request.QueryString("nidDocumento")))
      Dim cadenaFirmas As String = String.Empty
      For Each datoFirma In firmas.Rows
        cadenaFirmas = cadenaFirmas & datoFirma("Firma").ToString() & " "+ Chr(13)
      Next
      reporte.SetParameterValue("pFirma", cadenaFirmas)

      'crvArchivos.ParameterFieldInfo.Clear()
      Me.crvArchivos.HasExportButton = False
      Me.crvArchivos.HasToggleGroupTreeButton = False
      Me.crvArchivos.EnableParameterPrompt = False
      'Me.crvArchivos.ParameterFieldInfo = False
      Me.crvArchivos.ReportSource = reporte

    Catch ex As Exception
      lblMensaje.Text = "Error al Cargar reporte: " + ex.Message
    End Try
  End Sub

End Class
